

FROM pytorch/pytorch:1.9.0-cuda11.1-cudnn8-devel


RUN rm /etc/apt/sources.list.d/cuda.list \
    && rm /etc/apt/sources.list.d/nvidia-ml.list \
    && apt-key del 7fa2af80 \
    && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub \
    && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub


RUN apt-get update \
    && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN pip install torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
 
# 下载mmcv,只需要注意两个地方本地的cuda版本和pytorch版本(如有不同,相应修改即可)
RUN pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
 
# 下载mmdet,不需要加版本号,自动匹配
RUN pip install mmdet  -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
 
# 下载mmsegemtation
RUN pip install mmsegmentation  -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html

# 下载mmengine
RUN pip install mmengine  -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html

 
# 克隆mmdetection3d
RUN git clone https://github.com/open-mmlab/mmdetection3d.git -b v1.0.0rc4 /mmdetection3d
RUN cd /mmdetection3d && pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com && pip install -v -e . 

RUN mkdir -p /home/yufei.gan/workspace/BEVDepth
COPY requirements-dev.txt /home/yufei.gan/workspace/BEVDepth/requirements-dev.txt
COPY requirements.txt /home/yufei.gan/workspace/BEVDepth/requirements.txt
COPY setup.py /home/yufei.gan/workspace/BEVDepth/setup.py
WORKDIR /home/yufei.gan/workspace/BEVDepth
RUN mkdir -p /home/yufei.gan/workspace/BEVDepth/data/nuScenes
RUN pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
COPY assets /home/yufei.gan/workspace/BEVDepth/assets
COPY bevdepth /home/yufei.gan/workspace/BEVDepth/bevdepth
COPY scripts /home/yufei.gan/workspace/BEVDepth/scripts
COPY test /home/yufei.gan/workspace/BEVDepth/test
COPY README.md /home/yufei.gan/workspace/BEVDepth/README.md
COPY bev_depth_lss_r50_256x704_128x128_24e_2key.pth /home/yufei.gan/workspace/BEVDepth/bev_depth_lss_r50_256x704_128x128_24e_2key.pth
RUN python setup.py develop


# ENV TORCH_CUDA_ARCH_LIST="6.0 6.1 7.0 7.5 8.0 8.6+PTX" \
#     TORCH_NVCC_FLAGS="-Xfatbin -compress-all" \
#     CMAKE_PREFIX_PATH="$(dirname $(which conda))/../" \
#     FORCE_CUDA="1"

# # Avoid Public GPG key error
# # https://github.com/NVIDIA/nvidia-docker/issues/1631
# RUN rm /etc/apt/sources.list.d/cuda.list \
#     && rm /etc/apt/sources.list.d/nvidia-ml.list \
#     && apt-key del 7fa2af80 \
#     && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub \
#     && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub

# # (Optional, use Mirror to speed up downloads)
# # RUN sed -i 's/http:\/\/archive.ubuntu.com\/ubuntu\//http:\/\/mirrors.aliyun.com\/ubuntu\//g' /etc/apt/sources.list && \
# #    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# # Install the required packages
# RUN apt-get update \
#     && apt-get install -y ffmpeg libsm6 libxext6 git ninja-build libglib2.0-0 libsm6 libxrender-dev libxext6 \
#     && apt-get clean \
#     && rm -rf /var/lib/apt/lists/*

# # Install MMEngine, MMCV and MMDetection
# RUN pip install openmim && \
#     mim install "mmengine" "mmcv>=2.0.0rc4" "mmdet>=3.0.0"

# # Install MMDetection3D
# RUN pip install einops
# RUN pip install waymo-open-dataset-tf-2-6-0
# RUN pip install setuptools==59.5.0
# RUN conda clean --all \
#     && git clone https://github.com/open-mmlab/mmdetection3d.git -b dev-1.x /mmdetection3d \
#     && cd /mmdetection3d \
#     && pip install --no-cache-dir -e .

# RUN mkdir /mmdetection3d/script